/**********************************************************************************************************************
 *
 * Project:    mGameEngine
 * File:       ambientlight.h
 * Author:     karooolek
 * Created on: 2009-03-27
 *
 **********************************************************************************************************************/

#ifndef AMBIENTLIGHT_H_
#define AMBIENTLIGHT_H_

#include "light.h"
#include "glee.h"

namespace mGameEngine
{
namespace Graphics
{

/**
 * Ambient light.
 */
class AmbientLight : public Light
{
protected:
    /**
     * Ambient light color.
     */
    Color _ambient;

public:
    /**
     * Create new ambient light.
     */
    AmbientLight();

    /**
     * Create new ambient light with specified color.
     * @param ambient ambient light color
     */
    AmbientLight(const Color &ambient);

    /**
     * Destroy ambient light.
     * @return
     */
    virtual ~AmbientLight();

    /**
     * Get ambient light color.
     * @return ambient light color
     */
    const Color &getAmbientColor() const
    {
        return _ambient;
    }

    /**
     * Set ambient light color.
     * @param ambient ambient light color
     */
    void setAmbientColor(const Color &ambient)
    {
        _ambient = ambient;
    }

    /**
     * Set ambient light on graphics scene.
     * @param l light identifier
     */
    virtual void set(uint l) const;
};

}

}

#endif // AMBIENTLIGHT_H_
